CBMSTEVE.CA - Steve J. Gray's Homepage
CBMSTEVE.CA - Personal pages of Steve J. Gray
Changes Info Prototypes Remakes PET Projects CBM Projects Modding 3D Models KiCad Github Ohio Scientific Other My Software My Collections Facebooks

The Visual Memory Display Project Page

Introduction

This is a fun little project, probably not with many practical uses, other than being a cool blinking lights display. On the CBM-Hackers forum Leif Bloomquist proposed the idea of adding interesting lights inside his transparent C64 case to show computer activity. I came up with an idea to use a large 16x16 LED matrix wired to the address bus using some 4-to-16 decoders. Jim Brain liked the idea and said he would build it, and he did. He came up with a circuit which he demonstrated at the VCF-MW show in September 2016. I am attempting to design a PCB or two to implement this internally.

Theory of Operation

The typical vintage 8-bit CPU has 16 binary address lines. If we divide them into 8 upper and 8 lower we can think of the lower eight lines as being one "page" or 256 bytes of memory. The upper 8 lines then become the page selector. A 16x16 LED matrix has 256 individually addressable LEDs. By splitting the upper into two groups of 4 and decoding those 4 binary lines to 16 individual lines, and using them to control the ROWs and COLs of the LED matrix we can represent the entire CPU's address space. Whenever the CPU access any memory on a page the LED representing that page will light up. The more the CPU accesses that page the brighter the LED will be.

Various control lines on the CPU will also be needed to control the display, such as R/W, PHI2, etc on a 6502. The VMD is not limited to any particular CPU. For the moment I will concenrate on 6502-based processors.

Implementation

This is the tough part. With multiple CPU's, multiple ways to access the address lines (cpu or expansion port), and multiple ways to mount and arrange the LED's it will be tough to make a "one size fits all" solution. So, I will start with the basics, and design a PCB for the main circuitry. On the PCB will be a connector for the LEDs, and for the address, control, and power lines. This will allow for user connection to the computer's cpu, and for connection to off-board LED matrix units. Optionally I will design a small breakout board that can be mounted on the CPU socket to allow access to the cpu pins while the CPU is mounted on the board. Eventually I may design a cartridge for connecting externally.

LED Matrix Displays

There are various LED matrix displays available in several colours and sizes. They come in single, dual, or triple colour. The basic LED module is an 8x8 matrix in a single colour, usually RED. Dual-colour modules usually have RED and GREEN, and the triple-colour module gives you full RGB (red,green,blue).

Some common 8x8 matrix modules available on ebay:

Schematic and PCB

Here is the current design for the VMD board:

Here is the current DIP-40/VMD-65xx Breakout board:

Info

Here are examples of some Commodore 8-bit memory maps as arranged in a 16x16 Matrix:

Current Status Notes

The first batch of VMD and DIP40/VMD boards for 65xx CPU's have arrived! This is the base design, for 4 LED Matrix units of any size or configuration. The DIP40/VMD-65xx Breakout has pins on both sides for tapping into all 40 pins on any DIP-40 chip. On both ends are connectors for linking to the VMD board. One end is is wired for a 6502 and the other for a 6510. Both connectors can be broken off if not needed.

I am also considering a cartridge PCB for the C64 and a design for two-colour LEDs in order to show reads and writes separately. Comments or suggestions are welcome.

Project History

Contact

Page Created: Sept 30/2016. Last updated: Nov 16/2016, 4:00pm EST

Send comments or feedback to Steve Gray(sjgray@rogers.com)